// miniprogram/pages/my/index.js

const app = getApp()
Page({

    /**
     * 页面的初始数据
     */
    data: {
        avatarUrl: '',
        userInfo: {},
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function() {
        if (!wx.cloud) {
            wx.redirectTo({
                url: '../chooseLib/chooseLib',
            })
            return
        }
        this.setData({
            userInfo: app.globalData.userInfo,
            avatarUrl: app.globalData.userInfo.avatarUrl
        })
    },
    toMyAddress() {
        wx.navigateTo({
            url: `/pages/my/myAddress`
        })
    },
    toAddProduct() {
        wx.navigateTo({
            url: `/pages/addProduct/addProduct`
        })
    },
    toMyScore() {
        wx.navigateTo({
            url: `/pages/my/myScore`
        })
    },
    toMyOrder() {
        wx.navigateTo({
            url: `/pages/my/myOrder`
        })
    },
    toShopHistory() {
        wx.navigateTo({
            url: `/pages/my/myShopHistory`
        })
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function() {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh: function() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom: function() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage: function() {

    },
    onGetUserInfo: function(e) {
        if (!this.logged && e.detail.userInfo) {
            this.setData({
                logged: true,
                avatarUrl: e.detail.userInfo.avatarUrl,
                userInfo: e.detail.userInfo
            })
            app.globalData.userInfo = e.detail.userInfo
            const db = wx.cloud.database()
            //获取用户基础信息
            db.collection('userInfo').where({
                openId: app.globalData.openid
            }).get({
                success: res => {
                    if (res.data.length === 0) {
                        //如果用户不存在则为其建库
                        db.collection("userInfo").add({
                            data: {
                                openId: app.globalData.openid,
                                orderHistory: [],
                                score: 5000,
                            },
                            success: res => {
                                wx.hideLoading()
                                wx.showToast({
                                    title: '成功初始化用户数据',
                                })
                                app.globalData.userInfo.score = 5000;
                                app.globalData.userInfo._id = res._id;
                                this.setData({
                                    userInfo: app.globalData.userInfo,
                                    avatarUrl: app.globalData.userInfo.avatarUrl
                                })
                            },
                            fail: res => {
                                wx.showToast({
                                    title: '新用户初始化失败,请稍后再试',
                                })
                            }
                        })
                    } else {
                        app.globalData.userInfo.score = res.data[0].score
                        app.globalData.userInfo._id = res.data[0]._id;
                        this.setData({
                            userInfo: app.globalData.userInfo,
                            avatarUrl: app.globalData.userInfo.avatarUrl
                        })
                        wx.hideLoading()
                    }
                },
                fail: err => {
                    wx.showToast({
                        icon: 'none',
                        title: '查询记录失败'
                    })
                    wx.hideLoading()
                    console.error('[数据库] [查询记录] 失败：', err)
                }
            })
        }
    }
})